package com.gdpu.project.dao;

import java.util.Date;
import java.util.List;

import com.gdpu.page.vo.QueryResult;
import com.gdpu.project.vo.CgInnovate;

public interface CgInnovateDao {

	public abstract void save(CgInnovate transientInstance);

	public abstract void delete(CgInnovate persistentInstance);

	public abstract CgInnovate findById(java.lang.Integer id);

	public abstract QueryResult<CgInnovate> findByExample(CgInnovate instance,int firstindex,int maxresult);

	public abstract QueryResult<CgInnovate> findByProperty(String propertyName,
			Object value,int firstindex,int maxresult);

	public abstract QueryResult<CgInnovate> findByInnovateId(Object innovateId,int firstindex,int maxresult);
	/**
	 * 根据教师id分页查询CgInnovate
	 * @param teacherId
	 * @param firstindex
	 * @param maxresult
	 * @return
	 */
	public abstract QueryResult<CgInnovate> findByTeacherId(Object teacherId,int firstindex,int maxresult);
	/**
	 * 根据教师id一次性查询所有CgInnovate
	 * @param teacherId
	 * @return
	 */
	public abstract QueryResult<CgInnovate> findByTeacherId(Object teacherId);

	public abstract QueryResult<CgInnovate> findByInnovateName(Object innovateName,int firstindex,int maxresult);

	public abstract QueryResult<CgInnovate> findByRanking(Object ranking,int firstindex,int maxresult);

	public abstract QueryResult<CgInnovate> findByPrizeLevel(Object prizeLevel,int firstindex,int maxresult);

	public abstract QueryResult<CgInnovate> findByKeYanFen(Object keYanFen,int firstindex,int maxresult);

	public abstract QueryResult<CgInnovate> findByComment(Object comment,int firstindex,int maxresult);

	public abstract QueryResult<CgInnovate> findAll(int firstindex,int maxresult);

	public abstract CgInnovate merge(CgInnovate detachedInstance);

	public abstract void attachDirty(CgInnovate instance);

	public abstract void attachClean(CgInnovate instance);

	public abstract List<CgInnovate> nfindByProperty(String string, String id,
			Date startDate, Date endDate);
	/**
	 * 分页查询科技创新
	 */
	public QueryResult<CgInnovate> nfindByProperty(String propertyName,List<String> value,Date begin,Date end,int firstindex,int maxresult);

	public abstract int count(String id);

}